/**
 * @author 张体龙
 * @time 2022-12-03 9:31
 * @description 实现axios封装
 */
 import axios from 'axios'
 import { commonDefinition } from '../store/index'
 const baseURL=import.meta.env.MODE==='development' ? '/tpy' : 'http://www.shuiyue.info:20000'
//  baseURL = import.meta.env.MODE === "development" ? '/pangu' : 'http://www.shuiyue.info:20000'
 const Axios =axios.create({
    // baseURL:'http://www.shuiyue.info:20000',
    baseURL,
    timeout:5000,
})
/**
 * 设置了请求拦截，在请求头上添加token
 */
let noInterceptorUrls = [
    '/user/login'
]
Axios.interceptors.request.use(function(config) {
    if (noInterceptorUrls.includes(config.url)) {
        return config
    }
    /**
     * 获取token，判断token是否存在，如果不存在，那么请求要终止，所以需要返回一个Promise.reject
     * 从pinia获取token数据，如果存在则需要把token注入到请求头，不存在则终止请求
     */
    let token = commonDefinition().getToken
    if (!!token) {
        config.headers.token = token
        return config
    }

    return Promise.reject({code: 1, message: '用户的token丢失'})
})
/**
 * 发送axios请求并获得返回结果
 * 请求方式默认为POST
 * @param { Object} req 
 * @returns 请求后的结果
 */

export default function Ajax(req){
    if(!req){
        throw new TypeError('传点东西叭~')
    }
    if(!req.url){
        throw new TypeError('敢不敢传个地址给我?')
    }
    return new Promise(resolve=>{
        Axios.request({
            url:req.url,
            method: req.method || 'POST',
            data: req.data || {},
            params:req.params || {}
        }).then(({data})=>{
            resolve(data)
        }).catch(e=>{
            resolve(e)
        })
    })
}